﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Presentacion.Contrato.VU_10_Consultar_Horarios_de_Materia_e_Imprimir;
using vudu.Presentacion.Presentador.VU_10_Consultar_Horarios_de_Materia_e_Imprimir;
using vudu.Logica.Fachada;
using vudu.ClasesDominio;

namespace vudu.Presentacion.Vista.VU_10_Consultar_Horarios_de_Materia_e_Imprimir
{           

    public partial class ConsultarHorario : System.Web.UI.Page, IContratoConsultarHorario
    {    

        private PresentadorConsultarHorario _presentador;
        string miRol;
        protected void Page_Load(object sender, EventArgs e)
        {
            //validar session y escoger dependiendo del actor al presentador al cual llamar
            miRol = (string)Session["TipoRol"];
            if (miRol != "Escuela")
            {
                    if (miRol != "Universidad")
                    {
                        if (miRol == "Profesor")
                        {
                            EnlaceLogico fachada = (EnlaceLogico)Session["Fachada"];
                            _presentador = new PresentadorConsultarHorario(fachada, this);
                            _presentador.ConsultarMateriasDeUnProfesor();
                        }
                        else if (miRol == "Estudiante")
                        {
                             EnlaceLogico fachada = (EnlaceLogico)Session["Fachada"];
                            _presentador = new PresentadorConsultarHorario(fachada, this);
                            _presentador.ConsultarMateriasDeUnEstudiante();
                        }
                    }
           
            }

            if (!IsPostBack)
            {

            }
            
        }

        public GridView ConsultarHorarioImprimir
        {
            get { return GConsultarHorarioImprimir; }
        }
        public Label Usuario
        {
            get { return LUsuario; }
        }
        public Label MensajeError
        {
            get { return LMensajeError; }
        }

        protected void GConsultarHorarioImprimir_SelectedIndexChanged(object sender, EventArgs e)
        {
            //llenado de datos para pasarla a la siguiente pagina
            GridViewRow row = GConsultarHorarioImprimir.SelectedRow;
            int _valorColumna = 7;
            //si el valor de la columna es el indicado entonces llena la variable para pasarla a la otra pagina sino llena el otro
            //aqui se llena tambien los valores para practica y teoria y si es profesor o estudiante
            if (row.Cells.Count == _valorColumna)
            {
                String Tipo = Convert.ToString(row.Cells[6].Text);
                if (Tipo == "Teoria")
                {
                    SeccionMateria _seccionMateria = new SeccionMateria();
                    _seccionMateria.IdSeccionMateria = Convert.ToInt32(row.Cells[4].Text);
                    _seccionMateria.Materia.Nombre = Convert.ToString(row.Cells[1].Text);
                    _seccionMateria.Profesor.Nombre = Convert.ToString(row.Cells[3].Text);
                    _seccionMateria.Materia.Codigo = Convert.ToInt32(row.Cells[2].Text);
                    Session["SeleccionMateria"] = _seccionMateria;
                    Session["Tipo"] = Tipo;
                }
                else
                {
                    Practica _seccionPractica = new Practica();
                    Profesor _nombreProfesor = new Profesor();
                    _seccionPractica.IdPractica = Convert.ToInt32(row.Cells[4].Text);
                    _seccionPractica.NombrePractica = Convert.ToString(row.Cells[1].Text);
                    _nombreProfesor.Nombre = Convert.ToString(row.Cells[3].Text);
                    _seccionPractica.NumeroSeccion = Convert.ToInt32(row.Cells[2].Text);
                    _seccionPractica.profesor = _nombreProfesor;
                    Session["SeleccionPractica"] = _seccionPractica;
                    Session["Tipo"] = Tipo;
                }

            }
            else
            {
                String Tipo = Convert.ToString(row.Cells[5].Text);
                if (Tipo == "Teoria")
                {
                    SeccionMateria _seccionMateria = new SeccionMateria();
                    _seccionMateria.IdSeccionMateria = Convert.ToInt32(row.Cells[3].Text);
                    _seccionMateria.Materia.Nombre = Convert.ToString(row.Cells[1].Text);
                    _seccionMateria.Materia.Codigo = Convert.ToInt32(row.Cells[2].Text);
                    Session["SeleccionMateria"] = _seccionMateria;
                    Session["Tipo"] = Tipo;
                }
                else
                {
                    Practica _seccionPractica = new Practica();
                    Profesor _nombreProfesor = new Profesor();
                    _seccionPractica.IdPractica = Convert.ToInt32(row.Cells[3].Text);
                    _seccionPractica.NombrePractica = Convert.ToString(row.Cells[1].Text);
                    _seccionPractica.NumeroSeccion = Convert.ToInt32(row.Cells[2].Text);
                    _seccionPractica.profesor = _nombreProfesor;
                    Session["SeleccionPractica"] = _seccionPractica;
                    Session["Tipo"] = Tipo;
                }
            
            }

            Response.Redirect("HorarioPorMateria.aspx");
            
        }
        //llamada al presentador para consultar los datos de un profesor o un estudiante 
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            if (miRol == "Profesor")
            {
                GConsultarHorarioImprimir.PageIndex = e.NewPageIndex;
                EnlaceLogico fachada = (EnlaceLogico)Session["Fachada"];
                _presentador = new PresentadorConsultarHorario(fachada, this);
                _presentador.ConsultarMateriasDeUnProfesor();
            }
            else if (miRol == "Estudiante")
            {
                GConsultarHorarioImprimir.PageIndex = e.NewPageIndex;
                EnlaceLogico fachada = (EnlaceLogico)Session["Fachada"];
                _presentador = new PresentadorConsultarHorario(fachada, this);
                _presentador.ConsultarMateriasDeUnEstudiante();
            }


        }

        protected void Imprimir_Click(object sender, EventArgs e)
        {
            Response.Write("<script language=javascript>{window.print()}</script>");
        }
    }
}